package org.jeecg.modules.rooms.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.poi.hpsf.Decimal;

/**
 * <p>
 *
 * </p>
 *
 * @author fendo
 * @since 2023-03-07
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ces_rooms")
public class CesRooms extends Model<CesRooms> {

    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 酒店ID
     */
    private String hotelId;

    /**
     * 楼栋ID
     */
    private String buildId;

    /**
     * 楼层ID
     */
    private String floorId;

    /**
     * 房型ID
     */
    private String layoutId;

    /**
     * 房间序号
     */
    private String name;


    /**
     * 前缀
     */
    private String prefix;

    /**
     * 描述
     */
    private String remark;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 封面图
     */
    private String cover;

    /**
     * 图片
     */
    private String images;

    /**
     * 状态
     */
    private Integer state;

    /**
     * 创建时间
     */
    @TableField("createAt")
    private LocalDateTime createAt;

    /**
     * 修改时间
     */
    @TableField("updateAt")
    private LocalDateTime updateAt;

    /**
     * 逻辑删除字段
     */
    private Boolean invalid;


    /**
     * 房间门锁密码
     */
    private String passWord;
    /**
     * 返回的房间房型的门市价格
     */
    @TableField(exist = false)
    private BigDecimal marketPrice;
    /**
     * 返回放行名称
     */
    @TableField(exist = false)
    private String layoutName;

    @ApiModelProperty(value = "预约单ID")
    private String bookingOrderId;

    @ApiModelProperty(value = "房态")
    private Integer roomStatus;

    @ApiModelProperty(value = "入住ID")
    private String livingOrderId;

    @ApiModelProperty(value = "上次房态")
    private Integer lastRoomStatus;

    @ApiModelProperty(value = "水表读数")
    private BigDecimal waterMeter;

    @ApiModelProperty(value = "电表读数")
    private BigDecimal energyMeter;

    @ApiModelProperty(value = "燃气读数")
    private BigDecimal gasMeter;

    public static final String ID = "id";

    public static final String HOTEL_ID = "hotel_id";

    public static final String BUILD_ID = "build_id";

    public static final String FLOOR_ID = "floor_id";

    public static final String LAYOUT_ID = "layout_id";

    public static final String NAME = "name";

    public static final String PREFIX = "prefix";

    public static final String REMARK = "remark";

    public static final String SORT = "sort";

    public static final String COVER = "cover";

    public static final String IMAGES = "images";

    public static final String STATE = "state";

    public static final String CREATEAT = "createAt";

    public static final String UPDATEAT = "updateAt";

    public static final String INVALID = "invalid";

    public static final String WATER_METER = "water_meter";

    public static final String ENERGY_METER = "energy_meter";

    public static final String GAS_METER = "gas_meter";

    @Override
    public Serializable pkVal() {
        return this.id;
    }

}
